import { _decorator, Component, Node, Size, Texture2D, Vec3, view } from 'cc';
import { MapLayer } from './Layer/MapLayer';
import { EntityLayer } from './Layer/EntityLayer';
import MapParams from './MapParameters/MapParams';
const { ccclass, property } = _decorator;

/**
 * scene data
 */
export class SceneData {
    public currentMapId: string = '';

    public enterSpawnId: number = 0;

    //public mapData: MapData = null;

    public bgTex: Texture2D = null;
}


@ccclass('GameMap')
export class GameMap extends Component {
//    public static instance: GameMap = null;
//
//    @property(Node)
//    public layer: Node = null;
//
//    /** map layer */
//    @property(MapLayer)
//    public mapLayer: MapLayer = null;
//
//    /** map element layer */
//    @property(EntityLayer)
//    public entityLayer: EntityLayer = null;
//
//    private _sceneData: SceneData = null;
//    public get sceneData(): SceneData {
//        return this._sceneData;
//    }
//
//    public getCurrentMapId(): string {
//        return this.sceneData.currentMapId;
//    }
//
//    private _mapParams: MapParams = new MapParams();
//    private _winSize: Size;
//
//    public get winSize(): Size {
//        if (this._winSize == null) {
//            this._winSize = view.getVisibleSize();
//        }
//        return this._winSize;
//    }
//
//    onLoad() {
//        GameMap.instance = this;
//    }
//
//    public init(sceneData: SceneData) {
//        this._sceneData = sceneData;
//        
//        this.mapLayer.init(this._mapParams);
//        
//    }
//
//
//    start() {
//        this.node.position = new Vec3(-this._winSize.width / 2, -this._winSize.height / 2);
//    }
//
//    update(deltaTime: number) {
//        
//    }
}


